package com.itheima.pratice.homeweek;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class HomeWeek04 {
    /*我国有34个省级行政区，分别是：
23个省：
河北省、山西省、吉林省、辽宁省、黑龙江省、陕西省、甘肃省、青海省、山东省、福建省、
浙江省、台湾省、河南省、湖北省、湖南省、江西省、江苏省、安徽省、广东省、海南省、四川省、贵州省、云南省。
4个直辖市：
北京市、天津市、上海市、重庆市。
5个自治区：
内蒙古自治区、新疆维吾尔自治区、宁夏回族自治区、广西壮族自治区、西藏自治区。
2个特别行政区：
香港特别行政区、澳门特别行政区。

使用流：
1、统计三个字的省份的个数
2、统计名字中包含方位名词的省份（东西南北）的个数
3、打印名字中包含方位名词的普通省份（非自治区直辖市特别行政区）的名字
4、将所有的特殊省份（自治区直辖市特别行政区）提取出来并放到新集合中*/
    public static void main(String[] args) {
        String s = "河北省、山西省、吉林省、辽宁省、黑龙江省、陕西省、甘肃省、青海省、山东省、福建省、\n" +
                "浙江省、台湾省、河南省、湖北省、湖南省、江西省、江苏省、安徽省、广东省、海南省、四川省、贵州省、云南省、北京市、天津市、上海市、重庆市、内蒙古自治区、新疆维吾尔自治区、宁夏回族自治区、广西壮族自治区、西藏自治区、香港特别行政区、澳门特别行政区";
        String[] strings = s.split("、");
        System.out.println(strings);

        //统计三个字的省份的个数
        System.out.println("三个字的省份的个数有" + Arrays.stream(strings).filter(name -> name.length() == 3).count() + "个");

        //统计名字中包含方位名词的省份（东西南北）的个数
        System.out.print("名字中包含方位名词的省份（东西南北）的个数为：");
        System.out.println(Arrays.stream(strings).filter(name -> {
            boolean flag = false;
            for (int i = 0; i < name.length(); i++) {
                if (name.charAt(i) == '东' || name.charAt(i) == '南' || name.charAt(i) == '西' || name.charAt(i) == '北') {
                    flag = true;
                    break;
                }
            }
            return flag;
        }).count());

        //名字中包含方位名词的普通省份（非自治区直辖市特别行政区）的名字
        System.out.println("名字中包含方位名词的普通省份有:");//筛选省份最后一个字为省的普通省份
        Arrays.stream(strings).filter(name -> name.charAt(name.length()-1) == '省').filter(name -> {
            boolean flag = false;
            for (int i = 0; i < name.length() - 1; i++) {
                if (name.charAt(i) == '东' || name.charAt(i) == '南' || name.charAt(i) == '西' || name.charAt(i) == '北') {
                    flag = true;
                    break;
                }
            }
            return flag;
        }).forEach(name -> System.out.println(name));

        //将所有的特殊省份（自治区直辖市特别行政区）提取出来并放到新集合中
        List<String> list = Arrays.stream(strings).filter(name -> name.charAt(name.length()-1) != '省').collect(Collectors.toList());
        System.out.println(list);
    }
}
